import time


def is_valid_timestamp_ts(ts: int, out_time: int = 180) -> bool:
    """
    验证带校验位的13位时间戳

    参数:
    ts (int): 13位时间戳，最后一位是校验位
    out_time  (int): 过期时间，单位s
    返回:
    bool: 时间戳是否有效（格式正确、校验位匹配、未过期）
    """
    # 检查是否为整数
    if not isinstance(ts, int):
        return False
    ts_str = str(ts)
    if len(ts_str) != 13:
        return False

    # 提取时间戳和校验位
    timestamp_part = ts_str[:-1]  # 前12位是时间戳
    check_digit = ts_str[-1]  # 最后1位是校验位

    total = sum(int(c) for c in timestamp_part)

    if str(total)[0] != check_digit:
        return False

    # 将前12位转换为秒级时间戳
    timestamp_ms = int(timestamp_part + "0")

    # 计算时间差（秒）
    time_diff = time.time() - timestamp_ms / 1000

    return out_time > time_diff
